// 使用示例
const SM4Crypto = require('./sm4-util');

// 生成随机密钥和IV
const key = SM4Crypto.generateKey();
const iv = SM4Crypto.generateIV();

// 初始化实例（ECB模式不需要IV）
const sm4Ecb = new SM4Crypto(key);
const sm4Cbc = new SM4Crypto(key, iv); // CBC需要IV

// ---- ECB 模式加解密 ----
const textECB = 'Hello ECB!';
const encryptedECB = sm4Ecb.encrypt(textECB); // 默认ECB模式
const decryptedECB = sm4Ecb.decrypt(encryptedECB);
console.log('ECB 解密结果:', decryptedECB === textECB); // true

// ---- CBC 模式加解密 ----
const textCBC = 'Hello CBC!';
const encryptedCBC = sm4Cbc.encrypt(textCBC, 'cbc');
const decryptedCBC = sm4Cbc.decrypt(encryptedCBC, 'cbc');
console.log('CBC 解密结果:', decryptedCBC === textCBC); // true